home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 4 / The Arsenal Files 4 (Arsenal Computer).ISO / casm / au116-as.exe / UTIL / FIT_MASK.CPP < prev    next >
C/C++ Source or Header  |  1993-12-05  |  870b  |  43 lines

  1. #include "..\au.hpp"
  2.  
  3. /*************************************************************************/
  4. char *fit_mask(char *string, char *mask)
  5. {
  6.     static char ret_string[15];
  7.     int string_pos=0, mask_pos=0, ret_pos=0;
  8.  
  9.     while (mask[mask_pos] != '\0')
  10.     {
  11.         switch (mask[mask_pos])
  12.         {
  13.         case '*':
  14.             mask_pos++;
  15.             if (mask[mask_pos] == '\0')
  16.             {
  17.                 strcpy(ret_string+ret_pos, string+string_pos);
  18.                 return ret_string;
  19.             }
  20.             else
  21.             {
  22.                 while (string[string_pos] != mask[mask_pos])
  23.                 {
  24.                     if (string[string_pos] == '\0')
  25.                         break;
  26.                     ret_string[ret_pos++] = string[string_pos++];
  27.                 }
  28.             }
  29.             break;
  30.         case '?':
  31.             ret_string[ret_pos++] = string[string_pos++];
  32.             mask_pos++;
  33.             break;
  34.         default:
  35.             ret_string[ret_pos++] = mask[mask_pos++];
  36.             string_pos++;
  37.         }
  38.     }
  39.     ret_string[ret_pos] = '\0';
  40.     return ret_string;
  41. }
  42.  
  43.